package com.tom.architect.party3.day22;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.tom.architect.R;
import com.tom.architect.party3.day22.eventbus.EventBus;
import com.tom.architect.party3.day22.eventbus.Subscribe;
import com.tom.architect.party3.day22.eventbus.ThreadMode;


public class MainActivity22 extends AppCompatActivity {
    private TextView mTv22;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main22);
        // 注册绑定。
        EventBus.getDefault().register(this);

        mTv22 = findViewById(R.id.tv_22);
        mTv22.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity22.this, SecondActivity22.class);
                startActivity(intent);
            }
        });
    }

    /**
     * threadMode 执行的线程方式；
     * priority 执行的优先级，优先级越高的先执行。
     * sticky 粘性事件
     * 方法必须要使用public修饰。否则收不到事件。必须使用Subscribe修饰。
     */
    @Subscribe(threadMode = ThreadMode.MAIN, priority = 50, sticky = true)
    public void test2(String msg) {
        Log.d("TAG", "test2:" + msg);
        mTv22.setText(msg);
    }

    @Subscribe(threadMode = ThreadMode.MAIN, priority = 100, sticky = true)
    public void test1(String msg) { // 接受String类型的消息。
        // 在一个地方通过EventBus发送一个String对象，这个方法就会被执行。
        Log.d("TAG", "test1:" + msg);
        mTv22.setText(msg);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 解绑
        EventBus.getDefault().unregister(this);
    }
}